package com.nys.conci.base.utilitario;

import java.util.Random;

/**
 * Clase Utilitarios generales del sistema
 *
 * @since 19/03/2012
 * @author Eustace Watt Solano
 */
public class Util {

    /**
     * Completa una cadena de caracteres, con un token a completar a la
     * izquierda que viene de parametro para completar el largo especificado
     *
     * @param cadena valor iniciar
     * @param largo tamaño deseado de la cadena a retonro
     * @param token signo a completar
     * @return String con la cadena nueva
     */
    public static String completarConTokenIzq(String cadena, int largo, String token) {
        String retorno = cadena;
        if (retorno == null) {
            return null;
        }
        while (retorno.length() < largo) {
            retorno = token + retorno;
        }
        return retorno;
    }

    /**
     * Completa una cadena de caracteres, con un token a completar a la derecha
     * que viene de parametro para completar el largo especificado
     *
     * @param cadena valor iniciar
     * @param largo tamaño deseado de la cadena a retonro
     * @param token signo a completar
     * @return String con la cadena nueva
     */
    public static String completarConTokenDer(String cadena, int largo, String token) {
        String retorno = cadena;
        while (retorno.length() < largo) {
            retorno += token;
        }
        return retorno;
    }
    //private static final String AB = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZqwertyuioplkjhgfdsazxcvbnmñÑ*&%$#@/[]_-=+<>";
    private static final String AB = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZqwertyuioplkjhgfdsazxcvbnm";
    //private static final String AB = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    private static Random rnd = new Random();

    public static String randomString(int len) {
        StringBuilder sb = new StringBuilder(len);
        for (int i = 0; i < len; i++) {
            sb.append(AB.charAt(rnd.nextInt(AB.length())));
        }
        return sb.toString();
    }

    public static String generarClave() {
        String clave = "";
        int longitud_hilera = 8;
        String hilera_caracteres = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
                + "abcdefghijklmnopqrstuvwxyz";

        for (int i = 0; i < longitud_hilera; i++) {
            clave += hilera_caracteres.charAt((int) (Math.random() * hilera_caracteres.length()));
        }
        return clave;
    }

    public static String cortar(String tira, int index, int maxTira) {
        int ind = tira.indexOf(" ", index);
        if (ind > maxTira) {
            return tira.substring(0, maxTira);
        }
        if (ind > -1) {
            return tira.substring(0, ind);
        } else {
            return tira.substring(0, index);
        }

    }
}
